5c6e1cbca8e23a96db60bf1331460c181d7a0369,src/main/java/com/acciente/oacc/ResourcePermissions.java,ResourcePermissions,getInstance,#ResourcePermission#,89
Before Change
// validate system permission name is valid and id matches
if (resourcePermission.isSystemPermission() &&
!getSysPermissionName(resourcePermission.getSystemPermissionId()).equals(resourcePermission
.getPermissionName())) {
throw new IllegalArgumentException("Invalid system permission id for resource permission: "
+ resourcePermission.getSystemPermissionId());
}
if (resourcePermission.isWithGrantOption()) {
return getInstanceWithGrantOption(resourcePermission.getPermissionName());
}
else {
return getInstance(resourcePermission.getPermissionName());
}
}
After Change
return new ResourcePermissionImpl(permissionName, withGrant);
}
public static ResourcePermission getInstance(ResourcePermission resourcePermission) {
if (resourcePermission instanceof ResourcePermissions.ResourcePermissionImpl) {
return resourcePermission;
}
final ResourcePermission verifiedPermission;
if (resourcePermission.isWithGrantOption()) {
verifiedPermission = getInstanceWithGrantOption(resourcePermission.getPermissionName());
}
else {
verifiedPermission = getInstance(resourcePermission.getPermissionName());
}
// validate system permission name and id matched
if (resourcePermission.isSystemPermission() &&
verifiedPermission.getSystemPermissionId() != resourcePermission.getSystemPermissionId()){
throw new IllegalArgumentException("Invalid system permission id for resource permission: " + resourcePermission);
}